package algo3c2g15.domain;

import java.awt.Color;

import org.w3c.dom.Element;
import org.w3c.dom.Document;

public class Jugador {
	
	private double algoPesos;
	private String nombre;
	private Color color;
	
	/**
	 * @param nombre
	 * @param algoPesos
	 * @param color TODO
	 */
	public Jugador(String nombre, double algoPesos, Color color) {
		this.algoPesos = algoPesos;
		this.nombre = nombre;
		this.color = color;
	}
	
	public Jugador(double algoPesos) {
		this.algoPesos = algoPesos;
	}

	public Jugador(Element xmlElement) {
		this.algoPesos = Double.parseDouble(xmlElement.getAttribute("algoPesos"));
		this.nombre = xmlElement.getAttribute("nombre");
		this.color = Color.decode(xmlElement.getAttribute("color"));
	}
	
	/**
	 * @return the algoPesos
	 */
	public boolean tieneAlgoPesos(double algoPesos) {
		if (this.algoPesos >= algoPesos)
			return true;
		else
			return false;
	}

	public void gastaAlgoPesos(double algoPesos) {
		setAlgoPesos(getAlgoPesos()-algoPesos);
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * @param algoPesos the algoPesos to set
	 */
	public void setAlgoPesos(double algoPesos) {
		this.algoPesos = algoPesos;
	}

	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		Jugador jugador = (Jugador) obj;
		if ( getNombre().equals(jugador.getNombre()) ) {
			return true;
		} else {
			return false;
		}
	}

	public Double getAlgoPesos() {
		return algoPesos;
	}

	public Color getColor() {
		return color;
	}
	
	public Element getElementXml(Document doc) {
		Element elemJugador = doc.createElement("JUGADOR");

		elemJugador.setAttribute("algoPesos", getAlgoPesos().toString());
		elemJugador.setAttribute("nombre", getNombre());
		elemJugador.setAttribute("color", String.valueOf(getColor().getRGB()));

		return elemJugador;
	}
	

}
